1969D - Shop Game - CodeForces Solution


greedy math sortings

Please click on ads to support us..

Python Code:

import sys
input = sys.stdin.readline
import heapq

def readList():
    return list(map(int, input().split()))
def readInt():
    return int(input())
def readInts():
    return map(int, input().split())
def readStr():
    return input().strip()


def solve():
    n, k = readInts()
    a, b = readList(), readList()
    a = sorted([(a[i], b[i]) for i in range(n) if b[i]-a[i] > 0], key=lambda x: -x[1])
    n = len(a)
    if n <= k:
        return 0

    h = []
    ans = 0
    v = sum([a[i][1] - a[i][0] for i in range(n) if i >= k])
    for i in range(n):
        if i < k:
            heapq.heappush(h, -a[i][0])
            v -= a[i][0]
        else:
            ans = max(ans, v)
            v -= a[i][1]
            heapq.heappush(h, -a[i][0])
            ma = heapq.heappop(h)
            v -= ma
    return max(ans, v)







for _ in range(int(input())):
    print(solve())


Comments

Submit
0 Comments
More Questions

1671C - Dolce Vita
1669G - Fall Down
4D - Mysterious Present
1316B - String Modification
1204A - BowWow and the Timetable
508B - Anton and currency you all know
1672A - Log Chopping
300A - Array
48D - Permutations
677C - Vanya and Label
1583B - Omkar and Heavenly Tree
1703C - Cypher
1511C - Yet Another Card Deck
1698A - XOR Mixup
1702E - Split Into Two Sets
1703B - ICPC Balloons
1702F - Equate Multisets
1700A - Optimal Path
665C - Simple Strings
1708A - Difference Operations
1703E - Mirror Grid
1042A - Benches
1676B - Equal Candies
1705B - Mark the Dust Sweeper
1711A - Perfect Permutation
1701B - Permutation
1692A - Marathon
1066A - Vova and Train
169B - Replacing Digits
171D - Broken checker